﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyNganHangDe.GUI.HeThong;
using QuanLyNganHangDe.BLL;
using QuanLyNganHangDe.GUI.DuLieu;
using QuanLyNganHangDe.DAL;
using System.Diagnostics;
namespace QuanLyNganHangDe.GUI
{
    public partial class FormMain : FormBase
    {
        public FormMain()
        {
            InitializeComponent();
        }

        #region Đăng nhập
        private void OnDangNhapClick(object sender, EventArgs e)
        {
            DangNhap();
        }

        public void DangNhap()
        {
            FormDangNhap frm = new FormDangNhap();
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Program.NguoiSuDung = frm.NguoiSuDung;
                if (frm.NguoiSuDung.VaiTro == 2)
                {
                    //backUpToolStripMenuItem.Enabled = true;
                    //backUpToolStripMenuItem.Visible = true;
                }
            }
        }
        #endregion

        #region Đăng xuất
        private void OnDangXuatClick(object sender, EventArgs e)
        {
            DangXuat();
        }

        public void DangXuat()
        {
            Program.NguoiSuDung = null;
        }
        #endregion

        #region Thoát chương trình
        private void OnMenuHeThong_ThoatClick(object sender, EventArgs e)
        {
            ThoatChuongTrinh();
        }

        public void ThoatChuongTrinh()
        {
            this.Close();
        }
        #endregion

        private void OnLoad(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
            Program.NguoiSuDung = null;
            //Program.HocKy = null;
            this.DangNhap();
        }

        private void OnMenuHeThong_DoiMatKhauClick(object sender, EventArgs e)
        {
            FormDoiMatKhau frm = new FormDoiMatKhau(Program.NguoiSuDung);
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                DialogUtils.ShowMessage("Đổi mật khẩu thành công!");
            frm = null;
        }


        /// <summary>
        /// Cập nhật hiển thị người sử dụng đang làm việc
        /// </summary>
        internal void UpdateNguoiSuDung()
        {
            if (Program.NguoiSuDung == null)
            {
                #region Huỷ đăng nhập
                menuHeThong_DangNhap.Visible =
                    btnDangNhap.Visible = true;
                menuHeThong_DangXuat.Visible =
                    btnDangXuat.Visible =
                    menuDuLieu.Visible =
                    menuTacNghiep.Visible =
                    menuHeThong_QuanLyNguoiSuDung.Visible =
                    menuHeThong_DoiMatKhau.Visible = false;

                lblStatus.Text = "Chưa đăng nhập";

                btnKhaiThacNganHangDe.Visible = btnQuanLyNganHangCauHoi.Visible = false;
                #endregion
            }
            else
            {
                #region Thiết lập thông tin người sử dụng
                menuHeThong_DangNhap.Visible =
                    btnDangNhap.Visible = false;
                menuHeThong_DangXuat.Visible =
                    btnDangXuat.Visible =
                    menuDuLieu.Visible =
                    menuTacNghiep.Visible =
                    menuHeThong_QuanLyNguoiSuDung.Visible =
                    menuHeThong_DoiMatKhau.Visible = true;

                //lblStatus.Text = string.Format("Đã đăng nhập vai trò {1} - Tên đăng nhập: {0}",
                //    Program.NguoiSuDung.TenDangNhap,
                //    Program.NguoiSuDung.VaiTroDescription);
                lblStatus.Text = string.Format("Tên đăng nhập: {0}",
                    Program.NguoiSuDung.TenDangNhap);
                menuHeThong_QuanLyNguoiSuDung.Visible = Program.NguoiSuDung.VaiTro == (int)QuanLyNganHangDe.DAL.Models.NguoiSuDung.VAITRO.QuanTriHeThong;

                btnKhaiThacNganHangDe.Visible = btnQuanLyNganHangCauHoi.Visible = true;
                #endregion
            }
        }

        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FormThongTinChuongTrinh frm = new FormThongTinChuongTrinh();
            frm.ShowDialog();
        }

        private void menuHeThong_QuanLyNguoiSuDung_Click(object sender, EventArgs e)
        {
            FormQuanLyNguoiSuDung frm = new FormQuanLyNguoiSuDung();
            frm.ShowDialog();
        }

        private void menuDuLieu_Click(object sender, EventArgs e)
        {

        }

        private void menu_DuLieu_NganHangCauHoi_Click(object sender, EventArgs e)
        {           
            var frm = new FormQuanLyNganHangCauHoi();
            Utils.hideAndShowForm(this, frm);
        }

        private void menu_DuLieu_HocKy_Click(object sender, EventArgs e)
        {
            FormHocKy frm = new FormHocKy();
            frm.ShowDialog();
        }

        private void btnKhaiThacNganHangDe_Click(object sender, EventArgs e)
        {            
            var frm = new TacNghiep.FormQuanLyDeThi();
            Utils.hideAndShowForm(this, frm);
        }

        private void toolTipKhoaBomon_Click(object sender, EventArgs e)
        {
            var frm = new FormKhoaBoMon();
            frm.ShowDialog();
        }

        private void toolTipGuide_Click(object sender, EventArgs e)
        {
            try
            {
                System.Diagnostics.Process.Start(Application.StartupPath + @"\DocumentGuide\HDSD.pdf");
            }
            catch
            {
                MessageBox.Show("File hướng dẫn sử dụng không tồn tại", "Thông báo");
            }
        }

        private void autoUpdate_Click(object sender, EventArgs e)
        {
        }

        private void menuDuLieu_HocPhan_Click(object sender, EventArgs e)
        {

        }

        private void menuQuanLyHocKy_Click(object sender, EventArgs e)
        {
            FormHocKy frm = new FormHocKy();
            frm.ShowDialog();
        }

        private void miTroGiup_CapNhatPhanMem_Click(object sender, EventArgs e)
        {
            var assem = System.Reflection.Assembly.GetExecutingAssembly();
            Process.Start("AutoUpdate.exe", assem.ManifestModule.Name);
            Application.Exit();
        }

        private void menuHeThong_CauHinh_Click(object sender, EventArgs e)
        {

        }

    }
}
